//package com.hxy.manager.service;
//
//import android.app.Service;
//import android.content.ContentValues;
//import android.content.Intent;
//import android.content.SharedPreferences;
//import android.database.Cursor;
//import android.database.sqlite.SQLiteDatabase;
//import android.os.Binder;
//import android.os.IBinder;
//import android.util.Log;
//
//import com.hxy.manager.entity.GoodsEntity;
//
//import org.json.JSONArray;
//import org.json.JSONException;
//import org.json.JSONObject;
//
//import java.io.BufferedReader;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.InputStreamReader;
//import java.io.OutputStream;
//import java.io.OutputStreamWriter;
//import java.io.PrintWriter;
//import java.net.Socket;
//import java.net.UnknownHostException;
//import java.util.Vector;
//
//
//public class SyncService extends Service {
//
//   // final String host="192.168.16.207";//学校
//     final  String host="182.254.227.30";//服务器地址
//   // final  String host="192.168.8.101";//家
//    final String port="10086";
//    final String version="1.17.9";
//    //实现一个INBinder接口
//    public final IBinder myBinder=new LocalBinder();
//
//    //将该接口实现为一个继承Binder得内部类的对象！
//    public class LocalBinder extends Binder {
//        //在内部类实现一个返回对象的方法
//      public SyncService getService(){
//          return SyncService.this;
//      }
//    }
//    // 绑定时执行
//    public void  onCreate(){
//        super.onCreate();
//       // Toast.makeText(this,"Service已启动",Toast.LENGTH_SHORT).show();
//       	//读取shareperf
//      	SharedPreferences pref= getSharedPreferences("com.hxy.manager_preferences",MODE_PRIVATE);
//      	Log.i("kkk", "pref"+pref);
//        String host2 =pref.getString("ServerUrl", host);
//        int  port2 =Integer.parseInt(pref.getString("ServerPort", port));
////        用于提示当前service的接口
////        Toast.makeText(getApplicationContext(), host2+":"+port2, Toast.LENGTH_SHORT).show();
//       	Log.i("kkk", host2+port2 );
//    }
//    // 重写onBind方法
//    @Override
//    public IBinder onBind(Intent intent) {
//      //  Toast.makeText(this,"本地绑定：SyncService",Toast.LENGTH_SHORT).show();
//        return myBinder;
//    }
//    public boolean onUnbind(Intent intent){
//      //  Toast.makeText(this,"取消本地绑定：SyncService",Toast.LENGTH_SHORT).show();
//        return false;
//    }
//
//
//
//    // /调用时执行，用于向服务器上传数据
//    public void sync(){
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                String url="http://192.168.0.104:8080/newShopManagerServer/post";
//
//                //查询数据库
//                //查询本地数据库，得到所有信息，之后再全部同步到服务器端
//                mt =new MakeTable(SyncService.this);
//                GoodsEntity[] users = mt.getAllData();
//                Log.i("kan","数据库得到的数据条数"+String.valueOf(users.length));
//
////                http://www.json.org/json-zh.html
//
//                JSONArray json = new JSONArray();
//                for(GoodsEntity user : users){
//                    JSONObject jo = new JSONObject();
//                    try {
//                        jo.put("number", user.getNumber());
//                        jo.put("name", user.getName());
//                        jo.put("price",user.getPrice());
//                        jo.put("press",user.getPress());
//                        jo.put("date",user.getDate());
//                        jo.put("author",user.getAuthor());
//                        jo.put("location",user.getLocation());
//                        jo.put("time",user.getTime());
//                        json.put(jo);
//                    } catch (JSONException e) {
//                        e.printStackTrace();
//                    }
//                }
//
//                //今日菜价
//                SQLiteDatabase db1 = openOrCreateDatabase("My_DB.db",MODE_PRIVATE,null);
//                Log.i("kan","数据库连接成功！");
//                //上传今日菜价
//                db1.execSQL("create table if not exists TodayPrice(id integer primary key autoincrement, name text,price text,date text,photo text,time text)");
//                Cursor cursor1 = db1.rawQuery("select * from TodayPrice", null);
//
//                JSONArray jinricaijia = new JSONArray();
//
//                while (cursor1.moveToNext()){
//                    JSONObject jsonObject = new JSONObject();
//                    String name = cursor1.getString(cursor1.getColumnIndex("name"));
//                    String price = cursor1.getString(cursor1.getColumnIndex("price"));
//                    String date = cursor1.getString(cursor1.getColumnIndex("date"));
//                    String time = cursor1.getString(cursor1.getColumnIndex("time"));
//                    try {
//                        jsonObject.put("name",name);
//                        jsonObject.put("price",price);
//                        jsonObject.put("date",date);
//                        jsonObject.put("time",time);
//                        jinricaijia.put(jsonObject);
//                    } catch (JSONException e) {
//                        e.printStackTrace();
//                    }
//
//
//                }
//                cursor1.close();
//                db1.close();
//
//                Log.i("json",jinricaijia.toString());
//
//
//
//
//
//                JSONObject user_data = new JSONObject();
//                try {
//                    user_data.put("normal",json);
//                    user_data.put("caijia",jinricaijia);
//                } catch (JSONException e) {
//                    e.printStackTrace();
//                }
//
//// string.append(users[i].getNumber()+"#"+users[i].getName()+"#"+users[i].getPrice()+"#"+users[i].getPress()+"#"+users[i].getDate()+"#"+users[i].getAuthor()+"#"+users[i].getLocation()+"#"+users[i].getTime()+"\n");
//                JSONObject dataStream = new JSONObject();
//                try {
//                    dataStream.put("version","send".concat(version));
//                    dataStream.put("shopname","xindian");
//                    dataStream.put("user_data",user_data);
//                } catch (JSONException e) {
//                    e.printStackTrace();
//                }
//
//                Log.i("json",json.toString());
//                Log.i("json",dataStream.toString());
//
//
//                String info = HttpClient.sendPost(url,dataStream.toString());
//
//                if(info.equals("success")||"postexception".equals(info)){
//
//                    Log.i("kan","发送广播");
//                    Intent intent = new Intent("com.gdp2852.demo.service.broadcast");
//                    intent.putExtra("msg", ""+info);
//                    sendBroadcast(intent);
//
//                }
//
//            }
//        }).start();
//    }
//
//    public void sync1(){
//
//
//        new Thread(
//                new Runnable() {
//                    @Override
//                    public void run() {
//                       	//读取shareperf的配置
//                      	SharedPreferences pref= getSharedPreferences("com.hxy.manager_preferences",MODE_PRIVATE);
//                        String host2 =pref.getString("ServerUrl", host);
//                        int port2=Integer.parseInt( pref.getString("ServerPort", port));
//
//
//                        try {
//                        	Socket  socket = new Socket(host2,port2);
//                            Log.i("kan","socket连接成功！");
//                            OutputStream os = socket.getOutputStream();
//                            OutputStreamWriter osw=new OutputStreamWriter(os, "utf-8");
//                            PrintWriter pw=new PrintWriter(osw);
//                            //查询本地数据库，得到所有信息，之后再全部同步到服务器端
//                            mt =new MakeTable(SyncService.this);
//                            GoodsEntity[] users = mt.getAllData();
//
//
//                            Log.i("kan","数据库得到的数据条数"+String.valueOf(users.length));
//                            StringBuffer string=new StringBuffer();
//                            //服务器接收信息，同步到服务器的数据库
//                            string.append("send_"+version+"\n");
//                            for(int i =0;i<users.length;i++){
//                                Log.i("kan",users[i].getNumber()+users[i].getName()+users[i].getPrice()+"时间："+users[i].getTime());
//                                string.append(users[i].getNumber()+"#"+users[i].getName()+"#"+users[i].getPrice()+"#"+users[i].getPress()+"#"+users[i].getDate()+"#"+users[i].getAuthor()+"#"+users[i].getLocation()+"#"+users[i].getTime()+"\n");
//
//                            }
//                            Log.i("kan","客户端向服务器传输数据");
//
//                            SQLiteDatabase db1 = openOrCreateDatabase("My_DB.db",MODE_PRIVATE,null);
//                            Log.i("kan","数据库连接成功！");
//                            /*
//                            db1.execSQL("create table if not exists DeleteTable(id integer primary key autoincrement, number text,name text,times text,status text)");
//                            Log.i("kan","表DeleteTable打开成功");
//                            Cursor cursor = db1.rawQuery("select * from DeleteTable", null);
//                           //select number and status from DeleteTable  这个貌似存在问题
//                            // Cursor cursor = db1.rawQuery("select number from DeleteTable where status != ok", null);
//                            Log.i("kan","DeleteTable查询成功！");
//                            string.append("delete_"+version+"\n");
//                            while (cursor.moveToNext()) {
//                               // int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始
//                               // String name = cursor.getString(1);//获取第二列的值
//                              //  int age = cursor.getInt(2);//获取第三列的值
//                                String number = cursor.getString(cursor.getColumnIndex("number"));
//                                Log.i("kan","number的值："+number);
//                                String status = cursor.getString(cursor.getColumnIndex("status"));//因为查询语句是只查询了number，也就是说并不包括status，"select number from DeleteTable"
//                                Log.i("kan","status的值："+status);
//                                if(status.equals("no"))
//                                {
//                                    string.append(number+"\n");
//                                    Log.i("kan","上传Delete:"+number);
//                                }
//
//                                else;
//
//                            }
//                            cursor.close();
//                            */
//                            //上传今日菜价
//                            db1.execSQL("create table if not exists TodayPrice(id integer primary key autoincrement, name text,price text,date text,photo text,time text)");
//                            Cursor cursor1 = db1.rawQuery("select * from TodayPrice", null);
//                            string.append("today_"+version+"\n");
//                            while (cursor1.moveToNext()){
//                                String name = cursor1.getString(cursor1.getColumnIndex("name"));
//                                String price = cursor1.getString(cursor1.getColumnIndex("price"));
//                                String date = cursor1.getString(cursor1.getColumnIndex("date"));
//                                String time = cursor1.getString(cursor1.getColumnIndex("time"));
//                                string.append(name+"#"+price+"#"+date+"#"+time+"\n");
//                            }
//                            cursor1.close();
//                            db1.close();
//                            pw.print(string);
//                            pw.flush();//立即传输，不然发不过去。
//
//                            socket.shutdownOutput();
//                            Log.i("kan","接收服务器输入流");
//                            InputStream is=socket.getInputStream();
//                            InputStreamReader isr= new InputStreamReader(is,"utf-8");
//                            BufferedReader br= new BufferedReader(isr);
//                            String info=null;
//                            StringBuffer sb=new StringBuffer();
//                            int flag=0;
//                            Log.i("kan","开始接收信息");
//                            while ((info=br.readLine())!=null){
//                                Log.i("kan","接收信息是："+info);
//                                if(info.equals("success")){
//                                    Log.i("kan","发送广播");
//                                    Intent intent = new Intent("com.gdp2852.demo.service.broadcast");
//                                    intent.putExtra("msg", ""+info);
//                                    sendBroadcast(intent);
//                                    continue;
//                                }
//                                else if (info.equals("delete")){
//                                    flag=1;
//                                    continue;
//                                }else;
//                                if(flag==1){
//                                    SQLiteDatabase db = openOrCreateDatabase("My_DB.db",MODE_PRIVATE,null);
//                                    ContentValues values = new ContentValues();
//                                    values.put("status","ok");
//                                    db.update("DeleteTable",values,"number = ?",new String[]{info});//String[]类型的一个数组
//                                    //db.update("tablename",values,"name=? AND age=?",new Object{"xiadong", 20});
//                                    db.close();
//
//                                }
//                                sb.append(info);
//                            }
//                            Log.i("kan","接收服务器完整消息："+sb);
//                            Log.i("kan","关闭输入流！");
//                            socket.shutdownInput();
//                            //这些无论是out还是in一律不能提前关闭，否则就是socket关闭了！
//                            br.close();
//                            isr.close();
//                            is.close();
//                            pw.close();
//                            os.close();
//                            osw.close();
//                            socket.close();
//                        } catch (UnknownHostException e) {
//                            e.printStackTrace();
//                        } catch (IOException e) {
//                            e.printStackTrace();
//                        }
//                    }
//                }
//        ).start();
//
//
//    }
//
//    public  void download(){
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                JSONObject receive =new JSONObject();
//                try {
//                    receive.put("version","receive".concat(version));
//                    receive.put("shopname","xindian");
//
//                } catch (JSONException e) {
//
//                }
//                String url ="http://192.168.0.104:8080/newShopManagerServer/post";
//
//                String data = HttpClient.sendPost(url,receive.toString());
//                Log.i("json",data);
//
//                //解析data，把String改成Json格式
//                com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(data); // 取一个json转换为对象
//
//                if(jsonObject!=null) {
//
//
//                    // 获取数据对象
//                    com.alibaba.fastjson.JSONObject user_data = jsonObject.getJSONObject("user_data");
//                    if(user_data!=null) {
//
//
//                        com.alibaba.fastjson.JSONArray normal = user_data.getJSONArray("normal");
//                        com.alibaba.fastjson.JSONArray jinricaijia = user_data.getJSONArray("caijia");
//                        Log.i("json",jinricaijia.toString());
//                        Vector<GoodsEntity> vector = new Vector<GoodsEntity>();
//                        // 遍历方式
//                        for (Object obj : normal) {
//                            com.alibaba.fastjson.JSONObject goods_datas = (com.alibaba.fastjson.JSONObject) obj;
//                            GoodsEntity book = new GoodsEntity();
//                            try {
//                                book.setNumber(goods_datas.get("number").toString());
//                                book.setName(goods_datas.get("name").toString());
//                                book.setPrice(goods_datas.get("price").toString());
//                                book.setPress(goods_datas.get("press").toString());
//                                book.setDate(goods_datas.get("date").toString());
//                                book.setAuthor(goods_datas.get("author").toString());
//                                book.setLocation(goods_datas.get("location").toString());
//                                book.setTime(goods_datas.get("time").toString());
//                                vector.add(book);//add添加的是地址！
//                            } catch (com.alibaba.fastjson.JSONException e) {
//                                e.printStackTrace();
//                            }
//                        }
//
//                        //今日菜价写入到数据库，采用很简单的方式写入，先连接数据库，判断数据库是否存在，之后查询数据库数据是否存在，依据时间的新旧，之后再写入。
//                        SQLiteDatabase db = openOrCreateDatabase("My_DB.db", MODE_PRIVATE, null);
//                        db.execSQL("create table if not exists TodayPrice(id integer primary key autoincrement, name text,price text,date text,photo text,time text)");
//
//                        if (jinricaijia != null) {
//                            for (Object jrcj : jinricaijia) {
//
//                                try {
//                                    com.alibaba.fastjson.JSONObject caijia = (com.alibaba.fastjson.JSONObject) jrcj;
//                                    String name = caijia.getString("name");
//                                    String price = caijia.getString("price");
//                                    String date = caijia.getString("date");
//                                    String time = caijia.getString("time");
//                                    System.out.format("name:%s\t price:%s\t date:%s\t time:%s\n", name, price, date,time);
//                                    Cursor cursor1 = db.rawQuery("select * from TodayPrice where name = '" + name + "'", null);
//                                    if (cursor1.getCount() == 0) {
//                                        db.execSQL("insert into TodayPrice(name,price,date,photo,time)values('" + name + "','" + price + "','" + date + "','" + "" + "','" + time + "')");
//                                        Log.i("kan", "写入本地数据库的TodaeyPric");
//                                    } else while (cursor1.moveToNext()) {
//                                        String time1 = cursor1.getString(cursor1.getColumnIndex("time"));
//                                        Long time2 = Long.parseLong(time);
//                                        Log.i("kan", "Today服务器：" + time);
//                                        Long time3 = Long.parseLong(time1);
//                                        Log.i("kan", "today本地：" + time1);
//                                        if (time2 > time3) {
//                                            Log.i("kan", "TodayPrice服务器端比较新，本地更新！");
//                                            //db.execSQL("update TodayPrice set price = '"+price+"' where name = "+name);  因为name不是数字，是汉字或者英文，所以需要加上单引号
//                                            db.execSQL("update TodayPrice set price = '" + price + "' where name = '" + name + "'");
//                                            db.execSQL("update TodayPrice set date = '" + date + "' where name = '" + name + "'");
//                                            db.execSQL("update TodayPrice set time = '" + time + "' where name = '" + name + "'");
//                                        } else
//                                            Log.i("kan", "本地比较新！");
//                                    }
//                                    cursor1.close();
//
//                                } catch (com.alibaba.fastjson.JSONException e) {
//                                    e.printStackTrace();
//                                }
//                            }
//                        }
//
//                        db.close();
//
//
//                        //数据写入到数据库
//                        //插入数据库，刷新列表。因为这个是单线程操作，所以插入数据库的连接管理不用担心。
//                        if (write(vector)) {
//                            //Service写入完成之后，通知界面刷新
//                            Intent intent = new Intent("com.gdp2852.demo.service.broadcast");
//                            intent.putExtra("msg", "finish");
//                            sendBroadcast(intent);
//                        }
//                        ;//传输过来的数据全部写入数据库
//                    }
//
//                }
//
//            }
//        }).start();
//    }
//    public  void download1(){
//
//        new Thread(
//                new Runnable() {
//
//                    @Override
//                    public void run() {
//                      	SharedPreferences pref= getSharedPreferences("com.hxy.manager_preferences",MODE_PRIVATE);
//
//                        String host2 =pref.getString("ServerUrl", host);
//                        int port2=Integer.parseInt( pref.getString("ServerPort", port));
//                        Vector<GoodsEntity> vector = new Vector<GoodsEntity>();
//
//                        try {
//                            Socket  socket = new Socket(host2,port2);
//                            Log.i("kan","socket连接成功！");
//                            OutputStream os = socket.getOutputStream();
//                            OutputStreamWriter osw=new OutputStreamWriter(os, "utf-8");
//                            PrintWriter pw=new PrintWriter(osw);
//                            //请求服务器，下发数据
//                            pw.print("receive_"+version+"\n");
//                            pw.flush();//立即传输，不然发不过去。
//                            Log.i("kan","服务器向客户端传输数据");
//                            socket.shutdownOutput();
//                            Log.i("kan","接收服务器输入流");
//
//
//                            InputStream is=socket.getInputStream();
//                            InputStreamReader isr= new InputStreamReader(is,"utf-8");
//                            BufferedReader br= new BufferedReader(isr);
//                            String info=null;
//                            Log.i("kan","接收输入流成功");
//                            int j=1;
//                            int biaoji=0;
//                            String name="";String price="";String date="";String time="";
//                            SQLiteDatabase db = openOrCreateDatabase("My_DB.db",MODE_PRIVATE,null);
//                            db.execSQL("create table if not exists TodayPrice(id integer primary key autoincrement, name text,price text,date text,photo text,time text)");
//                            Log.i("kan","数据库创建完毕");
//                            while ((info=br.readLine())!=null) {
//                           		Log.i("kan", info);
//                                if (info.equals("bookTable")) {
//                                    Log.i("kan","接收信息是："+info);
//                                    biaoji = 1;
//                                    continue;
//                                } else if (info.equals("todayPrice")) {
//                                    Log.i("kan","接收信息是："+info);
//                                    biaoji = 2;
//                                    continue;
//                                }
//                                if (biaoji == 1) {
//                                	GoodsEntity book = new GoodsEntity();
//                                	String in[] =info.split("#");
//                                	book.setNumber(in[0]);
//                                	book.setName(in[1]);
//                                	book.setPrice(in[2]);
//                                	book.setPress(in[3]);
//                                	book.setDate(in[4]);
//                                	book.setAuthor(in[5]);
//                                	book.setLocation(in[6]);
//                                	book.setTime(in[7]);
//                                	vector.add(book);//add添加的是地址！
//
//                                } else if (biaoji == 2) {
//                                    switch (j % 4) {
//                                        case 1:
//                                            name=info;
//                                            Log.i("kan","name："+info);
//                                            break;
//                                        case 2:
//                                            price=info;
//                                            Log.i("kan","price："+info);
//                                            break;
//                                        case 3:
//                                            date=info;
//                                            Log.i("kan","date："+info);
//                                            break;
//                                        case 0:
//                                            time=info;
//                                            Log.i("kan","time："+info);
//                                            Cursor cursor1 = db.rawQuery("select * from TodayPrice where name = '"+name+"'", null);
//                                            Log.i("kan","查询数据库TodayPrice！");
//                                            if(cursor1.getCount()==0){
//                                                db.execSQL("insert into TodayPrice(name,price,date,photo,time)values('"+name+"','"+price+"','"+date+"','"+""+"','"+time+"')");
//                                                Log.i("kan","写入本地数据库的TodaeyPric");
//                                            }else while (cursor1.moveToNext()){
//                                                String time1 = cursor1.getString(cursor1.getColumnIndex("time"));
//                                                Long time2 = Long.parseLong(time);
//                                                Log.i("kan", "Today服务器：" + time);
//                                                Long time3 = Long.parseLong(time1);
//                                                Log.i("kan", "today本地：" + time1);
//                                                if (time2 > time3) {
//                                                    Log.i("kan", "TodayPrice服务器端比较新，本地更新！");
//                                                    //db.execSQL("update TodayPrice set price = '"+price+"' where name = "+name);  因为name不是数字，是汉字或者英文，所以需要加上单引号
//                                                    db.execSQL("update TodayPrice set price = '"+price+"' where name = '"+name+"'");
//                                                    db.execSQL("update TodayPrice set date = '"+date+"' where name = '"+name+"'");
//                                                    db.execSQL("update TodayPrice set time = '"+time+"' where name = '"+name+"'");
//
//                                                } else
//                                                    Log.i("kan", "本地比较新！");
//                                            }
//                                            break;
//
//                                    }
//                                    j++;
//
//
//                                } else ;
//                            }
//                            //Service写入完成之后
//                            /*
//                            Intent intent = new Intent("com.gdp2852.demo.service.broadcast");
//                           if(flag==1||flag1==1)
//                            intent.putExtra("msg", "finish");
//                            else
//                            	if(flag==2)
//                                intent.putExtra("msg", "notdo");
//                            else
//                                intent.putExtra("msg", "failure");
//                            	sendBroadcast(intent);
//                            Log.i("kan","关闭输入流！");
//                            */
//                            socket.shutdownInput();
//
//                            //这些无论是out还是in一律不能提前关闭，否则就是socket关闭了！
//                            br.close();
//                            isr.close();
//                            is.close();
//                            pw.close();
//                            os.close();
//                            osw.close();
//                            socket.close();
//
//
//                        } catch (UnknownHostException e) {
//                            e.printStackTrace();
//                        } catch (IOException e) {
//                            e.printStackTrace();
//                        }
//                        finally {
//                           if(write(vector)){
//                               //Service写入完成之后，通知界面刷新
//                               Intent intent = new Intent("com.gdp2852.demo.service.broadcast");
//                               intent.putExtra("msg", "finish");
//                               sendBroadcast(intent);
//                           };//传输过来的数据全部写入数据库
//						}
//
//                    }
//                }
//        ).start();
//
//
//    }
//    //向本地数据库写入数据
//    boolean write(Vector<GoodsEntity> v){
//    	MakeTable mt2 =new MakeTable(SyncService.this);
//    	GoodsEntity book2[] = v.toArray(new GoodsEntity[]{});
//    	for(int i=0;i<book2.length;i++ ){
//    		Log.i("kan","名字"+i+ book2[i].getName());
//
//            GoodsEntity user2 = mt2.getUserByNumber(book2[i].getNumber());
//            Log.i("ka", "user:" + user2);
//
//            if (user2 != null) {
//                Log.i("kan", "Vector本地数据库已经存在这条数据！");
//                Long time1 = Long.parseLong(book2[i].getTime());
//                Log.i("kan", "Vector服务器：" + time1);
//                Long time2 = Long.parseLong(user2.getTime());
//                Log.i("kan", "Vector本地：" + time2);
//                if (time1 > time2) {
//                    Log.i("kan", "Vector服务器端比较新，本地更新！");
//                    mt2.updateUser(book2[i]);
//                } else
//                    Log.i("kan", "本地比较新！");
//            } else {
//                mt2.addData(book2[i]);
//                Log.i("kan", "写入本地数据库");
//            }
//            if(i==book2.length-1){
//            	return true;
//            }
//
//    	}
//    	return false;
//    }
//
//}
